Global Offset Table
略称: GOT
動的リンクされたライブラリのアドレス解決に必要なシンボルへのポインタの配列。ELFではGOT, PLTが用いられるが、PEではIATが用いられる。GOTにより、ライブラリをプロセスのメモリ空間の中で再配置可能になる。
共有ライブラリのロード時にシンボル解決を行わずに、関数が実際に呼び出されたタイミングでシンボル解決を行う。シンボル解決とは、別のオブジェクトファイルの関数や変数を使うときに、それらがメモリのどこに存在しているかを解決すること。ELFではPLTを用いて遅延リンクする。
遅延リンクを用いる場合、GOTを動的に書き換える必要がある。GOT Overwriteが可能。この対策としてFull RELROがある。Full RELROが設定されると、遅延リンクを用いずにロード時(=プログラム開始時?)に、実際の関数アドレスをGOTのエントリに挿入するため、GOTはread-onlyになる。